<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
       //全局上下文
        // 全局对象是预定义的对象作为javaScript的全局函数和全局属性的占位符，通过使用全局对象可以访问其他所有预定义的函数，对象和属性

        // 在顶层的JavaScript代码中可以用关键字this引用全局对象，因为全局对象是作用域链的头，这意味着所有非限定性的函数名和变量都会作为该对象的属性来查询。
        // 1.可以通过this引用的全局对象就是window对象
        console.log(this)
        // 2.全局对象是由Object构造函数实例化的一个对象
        console.log(this instanceof Object)
        // 3.预定义一大堆函数和属性
        console.log(Math.random())
        console.log(this.Math.random())
        // 4.作为全局变量的的宿主。
        var a = 1
        console.log(this.a)
        console.log(window.a)
        this.window.b = 2
        console.log(this.window.b)
    </script>
</body>
</html>